package Annotations;

//自定义注解

import java.lang.annotation.*;

/**
 * @Target：表示注解能够作用的位置
 *      ElementType取值:
 *                  TYPE:作用于类上   FIELD:作用于成员变量上 MOUDLE:作用于方法上
 * @Retention:表示描述注解被保留在哪个阶段
 *       RententionPolicy 取值
 *                  RUNTIME：表示当前描述的类会保留在class字节码文件中并被jvm读取到
 *                  SOURCE:表示只保留在源文件中当编译为class文件时注解会1被丢弃掉
 *                  CLASS::(default)表示注解被保存在class文件中，当jvm加载class文件时会被丢到,(默认生命周期）
 * @Inherited:表示是否被子类继承
 * @Dounmented：表示会被api文档读取
 */
 @Target({ElementType.TYPE,ElementType.METHOD})
 @Retention(RetentionPolicy.RUNTIME)
 @Inherited
 @Documented
public @interface myAnno {
     String className();
     String classMethod();
    /**
     * 注解属性返回值可以含有以下几种
     *          基本数据类型
     *           String
     *           枚举
     *           注解
     *           以上类型的数组
     */
  /*  int age();
    String name();
    ENUM ENUM();
    String sex() default "男";
    String[] str();
    myAnno2 myanno2();*/
}
